﻿Imports Commander_Wars.Spieletools
''' <summary>
''' Sorgt für die Übersetzung der Texte
''' </summary>
''' <remarks></remarks>
Public Class Sprachconverter
    Structure Wort
        Dim Deutsch As String
        Dim Übersetzung As String
        Public Sub New(ByVal Deutsch As String, ByVal Übersetzung As String)
            Me.Deutsch = Deutsch
            Me.Übersetzung = Übersetzung
        End Sub
    End Structure
    Private Shared Übersetzungen() As Wort = {}
    Private Shared LadeTexte() As String = {}
    Public Shared Sub LoadLanguage()
        ReDim LadeTexte(-1)
        ReDim Übersetzungen(-1)
        Dim Sprache As Sprachen = My.Settings.Sprache
        If My.Computer.FileSystem.FileExists(My.Settings.Resourcenpfad + "Sprachen\" + Sprache.ToString + ".lng") Then
            Dim strR As New IO.StreamReader(My.Settings.Resourcenpfad + "Sprachen\" + Sprache.ToString + ".lng", System.Text.Encoding.Default)
            While Not strR.EndOfStream
                Dim Z As String = strR.ReadLine
                If Not Z.StartsWith("//") Then
                    If Z.Contains("=") Then
                        Dim Z2() As String = Z.Split("=")
                        Array.Resize(Übersetzungen, Übersetzungen.Length + 1)
                        Übersetzungen(Übersetzungen.Length - 1) = New Wort(Z2(0), Z2(1))
                    End If
                End If
            End While
        End If
        If My.Computer.FileSystem.FileExists(My.Settings.Resourcenpfad + "Sprachen\" + Sprache.ToString + "\Ladetexte.txt") Then
            Using strR As New IO.StreamReader(My.Settings.Resourcenpfad + "Sprachen\" + Sprache.ToString + "\Ladetexte.txt", System.Text.Encoding.Default)
                While Not strR.EndOfStream
                    Dim Z As String = strR.ReadLine
                    Array.Resize(LadeTexte, LadeTexte.Length + 1)
                    LadeTexte(LadeTexte.Length - 1) = Z.Replace("|", Environment.NewLine)
                End While
            End Using
        End If
    End Sub
    Public Shared Function Translate(ByVal Wort As String) As String
        Dim WKlein = Wort.ToLower
        For I = 0 To Übersetzungen.Length - 1
            If Übersetzungen(I).Deutsch.ToLower = WKlein Then
                Return Übersetzungen(I).Übersetzung
            End If
        Next
        Return Wort
    End Function
    Public Shared Function TranslateIntoGerman(ByVal Wort As String) As String
        Dim WKlein = Wort.ToLower
        For I = 0 To Übersetzungen.Length - 1
            If Übersetzungen(I).Übersetzung.ToLower = WKlein Then
                Return Übersetzungen(I).Deutsch
            End If
        Next
        Return Wort
    End Function
    Public Shared Function GetRandomLadetext() As String
        If Objektverwalter.Spielfeld IsNot Nothing Then
            Dim desc As String = Objektverwalter.Spielfeld.Beschreibung.Trim.Replace("|", Environment.NewLine)
            If desc = "" Or desc = "Keine Beschreibung vorhanden." Then Return LadeTexte(Zufallszahl(0, LadeTexte.Length - 1)) Else Return desc
        Else
            Return LadeTexte(Zufallszahl(0, LadeTexte.Length - 1))
        End If
    End Function
End Class
